package com.example.service.flowable;

import com.example.vo.ResultVo;
import com.example.vo.process.LeaveVo;
import org.springframework.stereotype.Service;

/**
 * 请假申请服务类
 *
 * @author wsl
 */
public interface ILeaveService {

    /**
     * 新建一个请假申请
     * @param leaveVo
     * @return
     */
    ResultVo createLeaveProcess(LeaveVo leaveVo);

    /**
     * 查找请假审批人员列表
     * @param userId
     * @return
     */
    ResultVo queryAssessingOfficer(String userId);

    /**
     * 查询我发起的请假申请
     * @param userId
     * @return
     */
    ResultVo queryMyLeaveProcess(String userId);

    /**
     * 查询我要做的审批申请
     * @param userId
     * @return
     */
    ResultVo queryAuditTask(String userId);

    /**
     * 完成审批任务
     * @param taskId
     * @param approved
     * @param reply
     * @return
     */
    ResultVo completeExamineApproved(String taskId, Boolean approved, String reply);

    /**
     * 查询请假申请的详情
     * @param processInstanceId
     * @return
     */
    ResultVo queryLeaveApplyDetail(String processInstanceId);

    /**
     * 查询任务详情
     * @param taskId
     * @return
     */
    ResultVo queryTaskDetail(String taskId);
}
